//---Added By S.Sugita
#include "MyDeviceParameterisation.hh"

#include "G4Box.hh"
#include "G4Tubs.hh"
#include "G4VPhysicalVolume.hh"
#include "G4ThreeVector.hh"

MyDeviceParameterisation::MyDeviceParameterisation( G4int nofdevices,G4double initzpos,G4double spacing )
  :NofDevices(nofdevices),InitZpos(initzpos),Spacing(spacing)
{}
MyDeviceParameterisation::~MyDeviceParameterisation(){}

void MyDeviceParameterisation::ComputeTransformation(const G4int copyNo, G4VPhysicalVolume* physVol) const
{
  G4double Xposition = 0.*mm; // w.r.t. copyNo
  G4double Yposition = 0.*mm; // w.r.t. copyNo
  G4double Zposition = InitZpos + Spacing*copyNo; // w.r.t. copyNo

  G4ThreeVector origin(Xposition,Yposition,Zposition);
  physVol->SetTranslation(origin);
  physVol->SetRotation(0);

  G4cout<<"------Here1-----------"<<G4endl;
}
/*
void MyDeviceParameterisation::ComputeDimensions(G4Box& tracker, const G4int copyNo,const G4VPhysicalVolume* physVol) const
{
  G4double XhalfLength = 10.*mm; // w.r.t. copyNo
  G4double YhalfLength = 10.*mm; // w.r.t. copyNo
  G4double ZhalfLength = 10.*mm; // w.r.t. copyNo

  tracker.SetXHalfLength(XhalfLength);
  tracker.SetYHalfLength(YhalfLength);
  tracker.SetZHalfLength(ZhalfLength);

  G4cout<<"-------Here2----------"<<G4endl;
}

G4VSolid* ChamberParameterisation::ComputeSolid(const G4int copyNo, G4VPhysicalVolume* physVol)
{
  G4VSolid* solid;
  if(copyNo == //--) solid = myBox;
  else if(copyNo == //--) solid = myTubs;
  //--
  return solid;
}
G4Material* ComputeMaterial // material, sensitivity, visAtt
(const G4int copyNo, G4VPhysicalVolume* physVol,
 const G4VTouchable *parentTouch=0);
{
  G4Material* mat;
  if(copyNo == //-- )
    {
      mat = material1;
      physVol->GetLogicalVolume()->SetVisAttributes( att1 );
    }

  //--

  return mat;
}
*/
